#pragma once

#include <iostream>
#include <string>
#include <fstream>
#include <sstream>

namespace GL
{

    struct ImageData
    {
        int Width;
        int Height;
    };

    struct ShaderSourceData
    {
        std::string VertexSource;
        std::string FragmentSource;
    };

    enum ShaderSourceType
    {
        NONE = -1,
        VERTEX = 0,
        FRAGMENT = 1
    };

    class GlLoader
    {
    public:
        static unsigned char *LoadImageByUrl(std::string ImageUrl, ImageData &data);
        static void free(unsigned char *data);
        static ShaderSourceData LoadShaderSource(const std::string &FilePath);
    };
}